home *** CD-ROM | disk | FTP | other *** search
/ Programming in Microsoft Windows with C# / Programacion en Microsoft Windows con C#.iso / Original Code / Brushes and Pens / PenDashStyles / PenDashStyles.cs next >
Encoding:
Text File  |  2001-01-15  |  1.5 KB  |  55 lines

  1. //--------------------------------------------
  2. // PenDashStyles.cs ⌐ 2001 by Charles Petzold
  3. //--------------------------------------------
  4. using System;
  5. using System.Drawing;
  6. using System.Drawing.Drawing2D;
  7. using System.Windows.Forms;
  8.  
  9. class PenDashStyles: PrintableForm
  10. {
  11.      MenuItem miChecked;
  12.  
  13.      public new static void Main()
  14.      {
  15.           Application.Run(new PenDashStyles());
  16.      }
  17.      public PenDashStyles()
  18.      {
  19.           Text = "Pen Dash Styles";
  20.  
  21.           Menu = new MainMenu();
  22.           Menu.MenuItems.Add("&Width");
  23.  
  24.           int[] aiWidth = { 1, 2, 5, 10, 15, 20, 25 };
  25.  
  26.           foreach (int iWidth in aiWidth)
  27.                Menu.MenuItems[0].MenuItems.Add(iWidth.ToString(), 
  28.                                         new EventHandler(MenuWidthOnClick));
  29.  
  30.           miChecked = Menu.MenuItems[0].MenuItems[0];
  31.           miChecked.Checked = true;
  32.      }
  33.      void MenuWidthOnClick(object obj, EventArgs ea)
  34.      {
  35.           miChecked.Checked = false;
  36.           miChecked = (MenuItem) obj;
  37.           miChecked.Checked = true;
  38.           Invalidate();
  39.      }
  40.      protected override void DoPage(Graphics grfx, Color clr, int cx, int cy)
  41.      {
  42.           Pen pen = new Pen(clr);
  43.           pen.Width = Convert.ToInt32(miChecked.Text);
  44.  
  45.           for (int i = 0; i < 5; i++)
  46.           {
  47.                pen.DashStyle = (DashStyle) i;
  48.  
  49.                int y = (i + 1) * cy / 6;
  50.  
  51.                grfx.DrawLine(pen, cx / 8, y, 7 * cx / 8, y); 
  52.           }
  53.      }
  54. }
  55.